<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>toC</title>
<style type="text/css">
	body {background-color: white; color: black; font-family:sans-serif; font-size:medium;}
	a:link {color: #3300ff;}
	a:visited {color: #663399;}
	a:hover {color:#0099ff;}
	a:active {color: #0066cc;}
	a.button {text-decoration:none;}
	
	table.nav  {background-color: #dbddff;}
	table.body {margin-top:2ex; margin-bottom:2ex;}
	table.programlistingindent {margin-left:32px;}
	
	img { margin-bottom:0px; margin-top:0px;}
	tt {margin-left:0.5em; margin-right:0.5em; font-weight:lighter;}
	
	p {margin-top:0ex;}
	p.synopsis {margin-left:32px;}
	p.programlistingindent {margin-left:32px;}
	p.citetitle {margin-left:2em;}
	
	ul ul {list-style-type:square;}
	ul li p {margin-top:0ex; margin-bottom:.5ex; padding:0}
	ol li p {margin-top:0ex; margin-bottom:.5ex; padding:0}
	
	h1.reftitle {color:#a90000;}
	h1.reftitle {font-size:3.7ex; margin-top:0; margin-bottom:0; font-weight:bold}
	h1.title {color:black; font-size:4ex; margin-top:1ex; font-weight:bold}
	h2.title {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:3ex}
	h3.title {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:2.5ex}
	h4.title {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:2ex}
	h2 {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:2.5ex}
	h3 {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:2ex} 
	
	pre.programlisting {margin-left:32px;}
	pre.synopsis {margin-left:32px;}
	
	
	.categorytitle {margin-top:8px; padding-top:0px;}
	.categorylist {background-color: #e1e6f2;}
 	</style>
</head>
<body>
<a name="top_of_page"></a><p style="font-size:1px;"></p>
<h1 class="reftitle">toC</h1>
<h2>Purpose</h2>
<p>Export of PWA/PWQ function to C-code</p>
<h2>Syntax</h2>
<pre class="synopsis">controller.toC('function')</pre>
<pre class="synopsis">controller.toC('function','filename')</pre>
<pre class="synopsis">controller.toC('function','filename','tie_break_fcn')</pre>
<h2>Description</h2>
<p></p> 
      The function <tt>toC()</tt> exports given piecewise affine (PWA) or piecewise quadratic (PWQ) function
      to C-language including a sequential evaluation routine. The PWA/PWQ function must be attached to the 
      <tt>PolyUnion</tt> object.<br><br>    
      If the file name is not provided, the default output name is <tt>mpt_getInput</tt>.<br><br>
      The export routine generates two files on the output:
      <ul>
          
         <li>
            <tt>mpt_getInput.c</tt> - which contains the PWA/PWQ function including the sequential search </li>
          
         <li>
            <tt>mpt_getInput_mex.c</tt> - mex interface for evaluation in Matlab </li>
      
      </ul>
      The file <tt>mpt_getInput_mex</tt> can be compiled inside Matlab and used for fast evaluation of PWA/PWQ 
      function. The compilation is invoked by <tt>mex</tt> routine as follows:<br><br>
      
      <tt>mex mpt_getInput_mex</tt>
      <br><br>
      
      The PWA/PWQ function can be exported using the tie-break option if the function is multiple valued. 
      The tie-breaking option determines which value of PWA/PWQ function will be evaluated based on the selecting the
      minimum in the tie-breaking function. In this case, the tie-breaking function must be attached to the 
      <tt>PolyUnion</tt> object as well. If no tie-breaking function is provided, the first found value 
      in the sequential search of PWA/PWQ function is evaluated.<br><br>
      
      The function <tt>toC()</tt> can export the floating point numbers to single or double precision. The default
      setting is <tt>double</tt> but this can be modified in global options<br><br>
      
      <tt>modules.geometry.unions.PolyUnion.toC</tt>.
      
  <h2>Input Arguments</h2>
<table cellspacing="0" class="body" cellpadding="4" border="0" width="100%">
<colgroup>
<col width="31%">
<col width="69%">
</colgroup>
<tbody>
<tr valign="top">
<td><tt>function</tt></td>
<td>
<p></p>Name of the attached PWA/PWQ function to export.<p>
	    		Class: <tt>char</tt></p>
</td>
</tr>
<tr valign="top">
<td><tt>filename</tt></td>
<td>
<p></p>Base name of the file to be generated.<p>
	    		Class: <tt>char</tt></p>
</td>
</tr>
<tr valign="top">
<td><tt>tie_break_fcn</tt></td>
<td>
<p></p>Name of the attached scalar PWA/PWQ function to be used in tie-breaking case.<p>
	    		Class: <tt>char</tt></p>
</td>
</tr>
</tbody>
</table>
<p></p>
<table class="nav" summary="Navigation aid" border="0" width="100%" cellpadding="0" cellspacing="0"><tr valign="top">
<td align="left" width="20">
<a href="isfulldim.html" class="button">&#9664;</a>  </td>
<td align="left">isfulldim</td>
<td>  </td>
<td align="right">fplot</td>
<td align="right" width="20"><a href="fplot.html" class="button">&#9654;</a></td>
</tr></table>
<br><p>©  <b>2010-2013</b>     Martin Herceg: ETH Zurich,    <a href="mailto:herceg@control.ee.ethz.ch">herceg@control.ee.ethz.ch</a></p>
<p>©  <b>2003-2013</b>     Michal Kvasnica: STU Bratislava,    <a href="mailto:michal.kvasnica@stuba.sk">michal.kvasnica@stuba.sk</a></p>
</body>
</html>
